package exception;
/**
 * throw关键字，用来对外主动抛出一个异常
 * 通常下面两种情况我们主动对外抛出异常：
 * 1：当程序遇到一个满足语法，但是不满足业务要求时，可以抛出一个异常告知调用者。
 * 2：程序执行遇到一个异常，但是该异常不应当在当前代码片段被解决时可以抛出给调用者。
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person person=new Person();
       // person.setAge(10000);//符合语法，但不符合业务逻辑要求
        /*
        当我们调用一个含throes声明异常抛出的方法时，编译器要求我们必须处理
        这个异常，否则编译不通过
        处理方式有两种
        1：使用try-catch捕获并处理这个异常
        2：在当前方法（本案例就是main方法）上继续使用throws声明该异常的抛出给
        使用者解决。
        具体选取那种取决于异常处理的责任问题。
         */
        //ail+回车   选择两种处理方法    建议不能在main方法中写throws

        try {
            person.setAge(1000000);
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }


        System.out.println("此人的年龄："+person.getAge());
    }
}
